Many software application programs require a user to perform one or more operations to obtain a specific output from the program. Such operations are often aided by features shown in a graphical user interface (GUI) for the application program. To search a database, for example, the user typically has to type a query into a search field and click a button to execute the search. To create a new record in a database, the user typically has to provide a name for the record and click a button to execute the creation and saving of the new record. Other software-based operations may require the user to make different kinds of inputs.
A common situation in today's office environment is that a user has access to a business-specific program such as a database management program that contains records used in the daily activities of the office. In addition, the user often has access to an application program that handles electronic messages, e.g., an email program. The user may receive emails from persons who have questions or other issues that require use of the business-specific program. When receiving such an email, the user typically launches the business-specific program or switches to a separate window where it is running, reviews or creates a particular record therein, and thereafter returns to the email program to respond to the sender. The user may have to make a certain entry in the business-specific program to locate (or create) the sought record, and this entry often relates to the sender of the email or to information contained in the email.
The task of using a keyboard to enter information can be tedious for the user, particularly if the user is charged with performing a similar operation many times a day. Also, manually typing characters in input fields can lead to errors, especially when the task is repetitive for the user. Moreover, it may be disruptive if the user after typing must move her hand from the keyboard to a pointing device to click a button that initiates the desired operation.